with SDL.Events;
with Legend.Renders;
with Legend.Interactives;
with Legend.Controls;
package Legend.Hero_State_Dialog is

   type Hero_State_Dialog_Type is new Interactives.Interactive_Type with private;


   overriding
   procedure Paint (this : in out Hero_State_Dialog_Type);

   overriding
   procedure Initialize (this : in out Hero_State_Dialog_Type);

   overriding
   procedure On_Timer (
      this          : in out Hero_State_Dialog_Type;
      Timer         : Hash_Type;
      Count         : Natural;
      Cancel_Bubble : in out Boolean
      );

   overriding
   procedure On_Key_Up (
      this : in out Hero_State_Dialog_Type;
      Message : SDL.Events.Keyboard_Event_t;
      Cancel_Bubble : in out Boolean
      );

   type Hero_State_Box_Type is new Controls.Control_Type with record
      Hero     : Uint16_t;
      Margin   : Point_Type;
   end record;

   overriding
   procedure Initialize (this : in out Hero_State_Box_Type);

   overriding
   procedure Prepare (this : in out Hero_State_Box_Type);

   overriding
   procedure Paint (this : in out Hero_State_Box_Type);

private


   type Hero_State_Dialog_Type is new Interactives.Interactive_Type with record
      F_Team_Index : Natural;
      F_Hero : Uint16_t;
      F_Page_Index : Positive;
   end record;

end Legend.Hero_State_Dialog;
